#ifndef _SYS_PARSE_ERR_H_
#define _SYS_PARSE_ERR_H_

#include "Err.h"
#include "SysTypes.h"

#define PARSE_ERR_VTABLE(self)   ((ParseErrVTable*)((FanObj*)self)->vtable)


extern Type*    ParseErr_classType;
extern VTable*  ParseErr_classVTable;


/* [sys::ParseErr] Attributes */
struct ParseErr
{
  Err           super;
};


/* [sys::ParseErr] Virtual-table */
typedef struct ParseErrVTable
{
  ErrVTable     super;
} ParseErrVTable;


/* [sys::ParseErr] Methods and fields */
void            ParseErr_make_0(ParseErr* self);
void            ParseErr_make_1(ParseErr* self, Str* msg);
void            ParseErr_make(ParseErr* self, Str* msg, Err* cause);


/* [sys::ParseErr] Extra methods */
ParseErr*       ParseErr_new(Str* msg, Err* cause);
ParseErr*       ParseErr_newWithFormattedMsg(const char* msgFormat, ...);


/* [sys::ParseErr] Type-system functions */
Type*           ParseErr_initType(void);
VTable*         ParseErr_initVTable(void);
void            ParseErr_initStatic(void);


#endif
